/**
题目:
    删除链表中等于给定值 val 的所有节点。
    示例:
    输入: 1->2->6->3->4->5->6, val = 6
    输出: 1->2->3->4->5
思路:
    哨兵
效果:
    执行用时：16 ms, 在所有 Go 提交中击败了19.28%的用户
    内存消耗：4.6 MB, 在所有 Go 提交中击败了49.87%的用户
*/
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func removeElements(head *ListNode, val int) *ListNode {
    var pre *ListNode
    for ;head != nil && head.Val == val;head = head.Next{}
    pre = head
    for pre != nil && pre.Next != nil{
        if pre.Next.Val == val{
            pre.Next = pre.Next.Next
        }else{
            pre = pre.Next
        }
    }
    return head
}